package com.ccys.db.vo.doctor.consultStage;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @Author：XLY
 * @Date：2024/2/27 0027
 */
@Data
public class GetMemberDetailVo {

    private String id;   //": "f1e122cc-bb81-4ed4-a679-52b4a011eda0",

    @JsonProperty("first_name")
    private String firstName;   //": "Child Indo Diana",

    @JsonProperty("last_name")
    private String lastName;   //": "",

    @JsonProperty("mem_code")
    private String memCode;   //": "01070300766519",

    @JsonProperty("date_of_birth")
    private Date dateOfBirth;   //": "2015-01-20T00:00:00",

    @JsonProperty("nric_fin")
    private String nricFin;   //": "8666629766",

    private String age;   //": "9",

    private String gender;   //": "male",

    @JsonProperty("singpass_gender")
    private String singpassGender;   //": "not specified",

    @JsonProperty("profile_photo")
    private String profilePhoto;   //": "",

    @JsonProperty("front_identification_card")
    private String frontIdentificationCard;   //":

    @JsonProperty("back_identification_card")
    private String backIdentificationCard;   //":

    private String passport;   //": "",

    @JsonProperty("child_photo")
    private String childPhoto;   //": "",

    @JsonProperty("mem_type_id")
    private String memTypeId;   //": "1",

    @JsonProperty("birth_certificate")
    private String birthCertificate;   //": "",

    @JsonProperty("front_driving_license")
    private String frontDrivingLicense;   //": "",

    @JsonProperty("back_driving_license")
    private String backDrivingLicense;   //": "",

    @JsonProperty("aia_identifier")
    private String aiaIdentifier;   //": "",

    @JsonProperty("aia_member")
    private boolean aiaMember;   //": "False",

    @JsonProperty("mem_height")
    private String memHeight;   //": "",

    @JsonProperty("mem_weight")
    private String memWeight;   //": "",

    @JsonProperty("mem_email")
    private String memEmail;   //": "",

    @JsonProperty("mem_home_address")
    private String memHomeAddress;   //": "",

    @JsonProperty("mem_phone")
    private String memPhone;   //": "",

    private boolean g6pd;   //": "False",

    @JsonProperty("mem_summary")
    private String memSummary;   //": "ddd",

    @JsonProperty("country_name")
    private String countryName;   //": "Indonesia",


    @JsonProperty("is_doctor_verified")
    private boolean isDoctorVerified;   //": false,


    @JsonProperty("verified_doctor_name")
    private String verifiedDoctorName;   //": "",

    @JsonProperty("pending_nric")
    private String pendingNric;   //": "",

    @JsonProperty("is_need_verify_when_register")
    private boolean isNeedVerifyWhenRegister;   //": false,

    @JsonProperty("singpass_uuid")
    private String singpassUuid;   //": "",

    @JsonProperty("country_id")
    private String countryId;   //": "106",

    private List<AllergyVo> allergies;

    private List<ReactionVo> reactions;

    private List<BookingVo> bookings;

    private List<LongtermVo> longterms;

    @JsonProperty("booking_selected_cdmp_package")
    private List<CdmpPackageVo> bookingSelectedCdmpPackage;

    @JsonProperty("booking_selected_cdmp_condition")
    private List<CdmpConditionVo> bookingSelectedCdmpCondition;


    @Data
    public static class AllergyVo {

        private String name;   //": "IMEDEEN PRIME RENEWAL 120'S",

        @JsonProperty("mem_allergies_id")
        private String memAllergiesId;   //": 9101313,

        @JsonProperty("MDAllergies_ID")
        private String allergyId;   //": "1576be80-3fa3-4720-bd1d-6758b2cc876a"

    }

    @Data
    public static class ReactionVo {

        private String name;   //": "Body Rashes",

        @JsonProperty("mem_medication_reaction_ID")
        private String memReactionId;   //": 218814,

        @JsonProperty("MD_MedicationReaction_ID")
        private String id;   //": "c9fe58f4-553e-4c65-8ce7-dbd6b41d1427",

        private String otherreaction;   //": ""

    }

    @Data
    public static class LongtermVo {

        @JsonProperty("booking_longterm_id")
        private String id;   //": "7cd6cd6f-b391-4f46-afd0-490ce0f2d5d2",

        @JsonProperty("member_id")
        private String memberId;   //": "f1e122cc-bb81-4ed4-a679-52b4a011eda0",

        @JsonProperty("LongTerm_Condition_ID")
        private String conditionId;   //": "26731",

        @JsonProperty("LongTerm_Condition_Name")
        private String conditionName;   //": "Kolera disebabkan Vibrio cholerae 01, biovar cholerae ",

        @JsonProperty("LongTerm_Condition_TransName")
        private String conditionTransName;   //": "Kolera disebabkan Vibrio cholerae 01, biovar cholerae ",

        @JsonProperty("Notes")
        private String notes;   //": "loloaa",

        @JsonProperty("LongTerm_Type")
        private Integer type;   //": 0,

        @JsonProperty("Longterm_Medication_ID")
        private String medicationId;   //": "",

        @JsonProperty("Longterm_Medication_Name")
        private String medicationName;   //": ""

    }



    @Data
    public static class BookingVo {

        private String id;   //": "0d15fd08-7dba-4857-990f-37978ee3dafa",

        private String code;   //": "10338556966973",

        @JsonProperty("created_on")
        private Date createdOn;   //": "2023-07-19T03:41:37",

        private String age;   //": "43",

        private String type;   //": "Self",

        private List<SymptomVo> symptoms;

    }

    @Data
    public static class SymptomVo {
        private String name;
    }



    @Data
    public static class CdmpConditionVo{
        @JsonProperty("Id")
        private String id;    //": 1581,

        @JsonProperty("booking_id")
        private String bookingId;    //": "fdcd4761-2f83-4def-9ff7-403c281bb2ab",

        @JsonProperty("cdmp_program_benefit_id")
        private String benefitId;    //": "6fea0d84-82fb-44a1-87a0-03625939c753",

        @JsonProperty("condition_id")
        private String conditionId;    //": "68cf8f33-1dd3-4707-bf2f-421bc30fe816",

        @JsonProperty("condition_name")
        private String conditionName;    //": "Con A",

        @JsonProperty("package_name")
        private String packageName;    //": "Test Discount"

    }


    @Data
    public static class CdmpPackageVo{

        @JsonProperty("cdmp_program_benefit_id")
        private String benefitId;   //,

        @JsonProperty("cdmp_program_benefit_name")
        private String benefitName;   //,

        private BigDecimal price;   //,

        private Integer quantity;   //,

        @JsonProperty("total_amount")
        private BigDecimal totalAmount;   //,

        @JsonProperty("price_unit")
        private BigDecimal priceUnit;   //

    }


}
